package com.tpl.core.basedata.service;

import com.tpl.core.common.page.Page;
import com.tpl.core.entity.sys.Dept;
import com.alibaba.fastjson.JSONObject;

import java.util.List;



/**
 * 说明 :部门管理业务处理接口
 * @author <a href="mailto:3380084@gmail.com">张坤雷</a>
 * @version 创建时间：2013-7-2 下午5:13:52 
 *
 */
public interface DeptService {
	/**
	 * 
	 * 说明 :获取部门列表信息
	 * @param parentId
	 */
	List<Dept> getDepts(Long userId, Long parentId);
	/**
	 * 
	 * 说明 :获取部门列表信息
	 * @param parentId
	 */
	List<Dept> getDepts(Long userId, Long parentId, Long orgId);
	/**
	 * 获取部门列表
	 *
	 * @return
	 */
	public List<Object[]> getDeptNames(Integer type);
	
	/**
	 * 
	 * 说明 :通过父节点ID获取部门列表信息
	 */
	List<Dept> getDeptsByParentId(Long parentId);
	
	/**
	 * 
	 * 说明 :通过父节点ID获取部门列表信息
	 */
	List<Dept> getDeptsByType(String type);
	
	/**
	 * 
	 * 说明 :保存部门信息
	 * @param dept
	 */
	void doSave(Dept dept);
	/**
	 * 
	 * 说明 :删除部门信息
	 */
	void doDelete(Long id);
	/**
	 * 
	 * 说明 :验证部门编号
	 * @param dept
	 */
	/*boolean checkDeptNo(String deptNo,Long id);
	*/
	/**
	 * 
	 * 说明 :通过id获取部门信息
	 */
	Dept getDeptById(Long id);
	
	void delTxls(Long[] delTxl);
	
	List<JSONObject> getAddressBook(Long deptId);
	Page getDeptByDeptIds(String string, int pageIndex, int pageSize);
	List<Dept> getDeptByIds(String deptIds);
	/**
	 * 说明：验证部门编号
	 * @param type
	 * @param deptNo
	 * @param id
	 * @param parentId TODO
	 * @return
	 */
	boolean addcheckDeptNo(int type,String deptNo,Long id, Long parentId);
	
	Dept getDeptByDeptNo(String deptNo, Long centerId);
	
	/**
	 * 查询部门列表
	 * @return
	 */
	List<Dept> getAllDept(String deptName);
	
	
}
